package com.lanou3g.code0408.constructor;

/**
 * If there are no bugs, it was created by Chen FengYao on 2018/4/8;
 * Otherwise, I don't know who created it either
 *
 * .java => 编译(如果没有写构造方法,会加一个无参构造方法)
 * => .class文件 => JVM执行.class
 */

public class Dog {
    private String name;
    private int age;

    /*
    构造方法:
    1. 没有返回值 : 根本就没有写 返回值的类型
    2. 方法名与类名相同

    构造方法 只能够被 new 这个关键字调用
    当 new对象的时候, 其实就是在调用构造方法
    例如: new Dog(); => 就是在调用
            public Dog(){} 这个构造方法
         new Dog("AA") => 其实就是在调用
            public Dog(String name){} 这个构造方法

     */
    public Dog(String name){
        this.name = name;
        System.out.println("这里是String参数的构造方法");
    }

    /*
    没有任何参数,方法体里也是空的构造方法

    1.如果我们没有写 任何一个构造方法,那么,系统会送我们一个
    无参的构造方法(我们看不见)

    2.只要 我们写了任何一个构造方法,那么系统就不送我们构造方法了
     */
    public Dog(){
        System.out.println("这里是没有参数的构造方法");
    }





    public Dog(String name, int age){
        this.name = name;
        this.age = age;
    }

    public Dog(int age){
        this.age = age;
    }











    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
